/**
* 版权所有:版权所有(C) 2020，卓信科技
* 系统名称:FOL-管理系统
* 文件名称:CronUtils.java
* 模块名称:时间表达式 解析类
* 创建日期:2020年5月19日
* 作        者:Baisong
* 内容摘要:时间表达式 解析类
*/
package com.zx.emanage.scheduling.util;

import java.util.Date;

import org.quartz.impl.triggers.CronTriggerImpl;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * 类 名 称:CronUtils
 *
 * 内容摘要:时间表达式 解析类
 *
 * 作 者:Baisong
 */
public class CronUtils 
{
    private static Logger logger = LoggerFactory.getLogger(CronUtils.class);
    /**
     * 
     * 方法名称: isValidExpression
     * 内容摘要: 校验
     * @param cronExpression
     * @return 
     *
     * @author: Baisong
     * @time:2020年9月22日 上午9:27:09
     */
    public static boolean isValidExpression(final String cronExpression) 
    {
        CronTriggerImpl trigger = new CronTriggerImpl();
        try 
        {
            trigger.setCronExpression(cronExpression);
            Date date = trigger.computeFirstFireTime(null);
            return date != null && date.after(new Date());
        }
        catch (Exception e)
        {
            logger.error("invalid expression:{},error msg:{}", cronExpression, e.getMessage());
        }
        return false;
    }

}
